#pragma once
#include <DateTime.h>
#include <string>
#include <System.h>
#include <iostream>
using namespace std;


//FCB基本信息管理类
class FcbMsg
{
public:
	FcbMsg(FCB fcb, string filename);
	int size();                         //大小byte
    DateTime getCreateTime();           //创建时间
    DateTime getUpdateTime();           //更新时间
    DateTime getVisitTime();            //访问时间
    int getState();                     //得到fcb的状态
    bool isExist();                     //文件是否存在
    string getName();                   //得到fcb的名字
    string disk;                        //所属虚拟磁盘名字
protected:
    FCB fcb;
    string name;
};





//文件
class File : public FcbMsg
{
public:
    File(FCB fcb, string filename);
    int tellg();                        //获得读的位置
    int tellp();                        //获得写的位置
    void seekg(int pos);                //设置读的位置
    void seekp(int pos);                //设置写的位置
    bool eof();                         //判断是否到达了文件尾（读/写）
    int read(char* data, int bytes);    //从文件读取bytes字节数据到缓冲区data
    int write(char* data, int bytes);   //把式缓冲区data的数据写入文件
private:
    int getPos;                         //读位置
    int putPos;                         //写位置
};

